#ifndef USER_PERMISSIONS_H
#define USER_PERMISSIONS_H

#include <stdint.h>

// 权限类型
typedef enum {
    PERM_READ = 0x01,     // 读权限
    PERM_WRITE = 0x02,    // 写权限
    PERM_EXECUTE = 0x04,  // 执行权限
    PERM_DELETE = 0x08,   // 删除权限
    PERM_ADMIN = 0x80     // 管理员权限
} permission_type_t;

// 初始化权限管理模块
int init_permissions_db(const char *db_path);

// 关闭权限管理模块
void close_permissions_db(void);

// 检查用户是否有指定路径的指定权限
int check_user_permission(uint32_t user_id, const char *path, permission_type_t perm);

// 授予用户指定路径的权限
int grant_user_permission(uint32_t user_id, const char *path, permission_type_t perm);

// 撤销用户指定路径的权限
int revoke_user_permission(uint32_t user_id, const char *path, permission_type_t perm);

// 获取用户在指定路径的所有权限
int get_user_permissions(uint32_t user_id, const char *path);

// 设置默认权限
int set_default_permissions(const char *path, int perm_mask);

#endif /* USER_PERMISSIONS_H */
